//
//  Person.h
//  08-HomeWork
//
//  Created by dllo on 16/7/13.
//  Copyright © 2016年 daming. All rights reserved.
//

#import <Foundation/Foundation.h>
/* NS_ASSUME_NONNULL_BEGIN
 * NS_ASSUME_NONNULL_END
 * 一般在.h文件中使用它们
 * 作用是在两者之间, 全局修饰 nonnull
 * 比如@property (nonnull, nonatomic, copy) NSString *name;在两者之间
 * 可以写成@property (nonatomic, copy) NSString *name;
 * 他们两个是等效的, 相当于系统自动添加了nonnull
 */
NS_ASSUME_NONNULL_BEGIN

@interface Person : NSObject
// 定义一个不能为空的字符串name属性
//@property (nonnull, nonatomic, copy) NSString *name;
// 上述不能为空的name字符串可以等效为下面的属性定义
@property (nonatomic, copy) NSString *__nonnull name;
// 定义一个可以为空的sex属性
//@property (nullable, nonatomic, copy) NSString *sex;
// 上述sex属性可以等效为下面的属性定义
@property (nonatomic, copy) NSString *__nullable sex;
// (null_resettable)定义一个setter方法为nullable  getter方法是nonnull的属性
@property (null_resettable, nonatomic, strong) NSArray *friends;

NS_ASSUME_NONNULL_END
@end
